矩阵求导

Matrix Calculus

矩阵导数运算

一、标量方程对向量的导数

分子: f(y)1×1 的标量
分母: yn×1向量

分母布局

与分母的函数相同

f(y)y=(f(y)y1f(y)y2f(y)yn)

分子布局

与分子的行数相同

f(y)y=(f(y)y1,f(y)y2,,f(y)yn)

二、向量方程对向量的导数

f(y)=(f1(y)f2(y)fn(y))(n×1) y=(y1y2ym)(m×1)

分母布局

f(y)y=(f(y)y1f(y)y2f(y)ym)(m×1)=(f1(y)y1f2(y)y1fn(y)y1f1(y)y2f2(y)y2fn(y)y2f1(y)ymf2(y)ymfn(y)ym)(m×n)

结论

在分母布局的条件下:

Ayy=AT

二次型的求导

yTAyy=Ay+ATy

如果 A 为对称阵,则有 yTAyy=2Ay

链式法则

标量的链式求导
注意矩阵不满足乘法交换律
使用分母布局:

Ju=yuJy

离散状态空间方程: x[k+1]=Ax[k]+Bu[k]
代价函数: J=x[k+1]Tx[k+1]
Ju=x[k+1]u[k]Jx[k+1]=BT2x[k+1]

实际应用

线性回归

z^=y1+y2xJ=i=1n[zi(y1+y2xi)]2

使用矩阵求解

z=(z1z2zn)x=(1x11x21xn)y=(y1y2)z^=xy=(y1+y2x1y1+y2x2y1+y2xn)

zz^=(z1(y1+y2x1)z2(y1+y2x2)zn(y1+y2xn))J=[zz^]T[zz^]=[zTyTxT][zxy]=zTzyTxTzzTxy+yTxTxy=zTz2zTxy+yTxTxyJy=2(zTx)+2xTxy=0y=(xTx)1xTz

如果没有解析解,使用机器学习的梯度下降

定义初始值 y
循环迭代 y=yα